A sprite may be a transparent computer art graphic that can change position and move around a display screen while not affecting the background behind the graphic. A computer graphics sprite may be a two-dimensional or three-dimensional image or animation that is integrated into a larger scene. The sprite may include user adjustable dynamic visual elements. Some programming languages allow the creation of sophisticated interactive movies and allow a user to interact with the animation by manipulating sprites in the movie, triggering changes in the movie by clicking on a sprite, or even by opening a web site in a browser window. Often sprites are uploaded into a picture server in a desired format, for example as a transparent Portable Networks Graphic (PNG). The transparency aids in applying a background color using, for example, Cascading Style Sheets (CSS), as necessary to imply different states of the same image, for example, hover state, selected state. The user or developer could then point to each category using pixel co-ordinates as locations. Sprite sheet generation tools are becoming more common because game development for devices and the web is currently a big business and sprite sheets are used in a lot of game development engines. Examples of sprite sheet generation tools found on Internet are TexturePacker™, Zwoptex™ and SWFSheet.
In general a sprite sheet comprises two pieces. The first piece is a packed sequence of images that describes one or more animation sequences. Most game/animation sequence engines use common image formats like png, JPEG XR or a JPEG with a mask to import the image data. Extensible image format generation is known and does not need to be addressed in detail.
The second piece of a sprite sheet consists of one or more data files. The most common piece of information stored in these data files is a list of frames and the location of each frame (generally a pixel based bounding box) within the generated image. The most commonly used file formats used to store this information is xml, plist and JSON. This file may be called the sprite sheet frame layout file.
It is also becoming popular for game engines to have a file that describes various animation sequences within the sprite sheet image file. One way to describe these animation sequences is with a unique identifier and a list of frame numbers as described in the sprite sheet frame layout file. These files can be declarative or they can be a script or program. An example of this is easelJSm, a Javascript library, which uses a JavaScript program to declare a list of animation sequences that can be used by the developer in their game code.
There are a large number of public and proprietary game/animation sequence engines. Many of the engines use different file formats, have different capabilities and need more or less information in order to generate the necessary data files. Some of these file formats are proprietary and may be used only by the company that wrote the game engine. Sprite sheet generation tools often ship with a list of sprite sheet frame layout file format options that are considered important but do not output animation sequence descriptions. Nor do sprite sheet generation tools allow generation of other file formats than the ones that ship with the tool that involve packing the individual sprites into a sprite sheet image. There are plug-ins for GIMP™ and Photoshop® that allow creation of a sprite sheet image (i.e. use a favorite art program to create a sprite sheet image file). There are also programs like TexturePacker™ and Zwoptex™ that allow bringing in images and outputting a sprite sheet image and a variety of different sprite sheet layout file formats. These applications choose popular formats which, if not needed, require the user to write code to convert one format to another.
It would be helpful to have an application that addresses the issue of helping identify and quickly create animation sequence. An extensible sprite sheet generation mechanism would allow a user, sometimes referred to as a developer, or simply as a customer, to write a “plug-in” that describes either a declarative sprite sheet data format file and/or a program or animation sequence file. The developer of the sprite sheet generation engine may extend its capabilities without shipping a new engine.
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all other copyright rights whatsoever. The following notice applies to the drawing that forms a part of this document: Copyright© 2012 Adobe Systems Inc. All rights reserved.